L'optimisation dans l'environnement HIP doit être considérée comme une discipline empirique rigoureuse plutôt que comme une série de suppositions intuitives. En adoptant un flux de travail systématique, les développeurs s'assurent que chaque modification de code est justifiée par des données, éloignant ainsi l'ingénierie des performances de la « superstition de l'optimisation » vers un cycle scientifique reproductible d'hypothèse et de vérification.
Le flux de travail en 6 étapes
Les directives de performance HIP recommandent une séquence systématique :
- Mesurer une base: Déterminer le temps d'exécution actuel et le débit.
- Profiler le programme: Utiliser
rocprofv3pour collecter les compteurs matériels. - Identifier le goulot d'étranglement: Déterminer si vous êtes limité par le calcul, la mémoire ou la latence.
- Appliquer des optimisations ciblées: Se concentrer uniquement sur le goulot d'étranglement identifié.
- Re-mesurer: Vérifier si le changement a réellement amélioré les performances.
- Itérer: Répéter le processus jusqu'à atteindre les objectifs.
Éviter les superstitions d'optimisation
Les gains de performance doivent être des résultats reproductibles issus d'interactions spécifiques avec le matériel. Évitez ces anti-modèles:
- Modifier le code du noyau avant de mesurer les performances actuelles.
- Ajuster la taille du bloc sans savoir si le noyau est limité par la mémoire.
- Poursuivre des chiffres d'occupation sans preuve qu'ils importent pour le travail spécifique.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>